package com.hyou.sc.eureka.client.auth.dao;

import java.util.List;

import com.hyou.sc.eureka.client.auth.dto.pojo.UserDO;

/**
 * UserDao Dao接口定义类，(表t_user)
 *
 * @author FengChangshuo
 * @version 1.0.0 2018-04-04 15:04:28 初始创建
 */
public interface UserDao {

    /**
     * 新增一条UserDO记录
     * 
     * @param user 要新增的UserDO记录数据对象
     */
    void insert(UserDO user);
    
    /**
     * 批量新增UserDO记录
     * 
     * @param users 要新增的UserDO记录数据对象集合
     */
    void insertBatch(List<UserDO> users);
    
    /**
     * 根据主键ID，删除一条UserDO记录
     * 
     * @param id UserDO的主键
     */
    void deleteByPrimaryKey(Long id);
    
    /**
     * 根据主键ID，批量删除多条UserDO记录
     *
     * @param ids UserDO的主键集合
     */
    void deleteBatchByPrimaryKeys(List<Long> ids);
    
    /**
     * 根据主键更新UserDO数据记录
     * 
     * @param user 要更新的UserDO数据对象
     */
    void updateByPrimaryKeySelective(UserDO user);
    
    /**
     * 根据主键查询UserDO数据对象
     * 
     * @param id UserDO的主键
     * @return UserDO数据对象
     */
    UserDO selectByPrimaryKey(Long id);
    
    /**
     * <pre>
     * 根据数据对象user查询符合条件的UserDO结果集
     * 根据user动态拼接查询条件。
     * </pre>
     *
     * @param user 用于封装查询条件
     * @return UserDO数据查询结果集
     */
    List<UserDO> selectByConditions(UserDO user);
    
}
